package Test;

import static org.junit.Assert.*;
import Spil.*;

public class Test {
	
	@org.junit.Test
	public void testLandPåFelt()
	{
		Raflebaeger rafle = new Raflebaeger();
		
		rafle.kastTerning(1, 1);
		assertEquals(250, rafle.udbetaltPenge());
		
		rafle.kastTerning(1, 2);
		assertEquals(-200, rafle.udbetaltPenge());

		rafle.kastTerning(1, 3);
		assertEquals(-100, rafle.udbetaltPenge());

		rafle.kastTerning(1, 4);
		assertEquals(-200, rafle.udbetaltPenge());

		rafle.kastTerning(1, 5);
		assertEquals(180, rafle.udbetaltPenge());

		rafle.kastTerning(1, 6);
		assertEquals(0, rafle.udbetaltPenge());

		rafle.kastTerning(2, 6);
		assertEquals(-70, rafle.udbetaltPenge());

		rafle.kastTerning(3, 6);
		assertEquals(-60, rafle.udbetaltPenge());

		rafle.kastTerning(4, 6);
		assertEquals(-80, rafle.udbetaltPenge());

		rafle.kastTerning(5, 6);
		assertEquals(-90, rafle.udbetaltPenge());

		rafle.kastTerning(6, 6);
		assertEquals(650, rafle.udbetaltPenge());

	}
	
	@org.junit.Test
	public void testBalance()
	{
		Raflebaeger rafle = new Raflebaeger();
		Spiller spiller = new Spiller("Udvikler", 1000);
		
		rafle.kastTerning(2, 2);
		spiller.tilfoejPenge(rafle.udbetaltPenge());		
		assertEquals(900, spiller.visBalance());
		
		rafle.kastTerning(6, 6);
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		assertEquals(1550, spiller.visBalance());
	}
	
	@org.junit.Test
	public void balance0()
	{
		Raflebaeger rafle = new Raflebaeger();
		Spiller spiller = new Spiller("Udvikler", 1000);
		
		rafle.kastTerning(1, 2); //Gør så spilleren får en balance på 0 præcis!
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		rafle.kastTerning(1, 2);
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		rafle.kastTerning(1, 2);
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		rafle.kastTerning(1, 2);
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		rafle.kastTerning(1, 2);
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		
		assertFalse(spiller.visTabt()); //Tjekker om spilleren ikke har tabt med en balance på præcis 0
		
		rafle.kastTerning(1, 2); //Gør så spilleren får en balance på under 0 (skylder penge).
		spiller.tilfoejPenge(rafle.udbetaltPenge());
		
		assertTrue(spiller.visTabt()); //Tjekker om spilleren har tabt
	}
}
